﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DADOS.usuario;

namespace PROAD.atendimento.Relatorio
{
    public partial class RelGestaoCuidados : System.Web.UI.Page
    {
        DADOS.usuario.metProntuario metPront = new metProntuario();
        DADOS.usuario.metPrescricao metPresc = new metPrescricao();
        DADOS.auxiliares.ListaGestao metGestao = new DADOS.auxiliares.ListaGestao();
        DADOS.usuario.metCalculo metCalculo = new DADOS.usuario.metCalculo();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                
                if (Session["CO_USUARIO"] != null)
                {
                    lblUsurario.Text = "Nome do Paciente: " + Session["NO_NOME"];

                   
                    
                }
                else
                {
                    Response.Redirect("/atendimento/Consulta/ConsultaDadosPaciente.aspx");
                }
            }
        }

        private void CarregarGrid(List<DADOS.TB_PRONTUARIO> objPront)
        {
            if (objPront.Count > 0)
            {
                grdResult.DataSource = objPront;
                grdResult.DataBind();
            }else
            {
                grdResult.EmptyDataText = "Nenhum resultado para a pesquisa.";

                txtTituloMsn.Text = "ALERTA";
                txtTextoMsn.Text = "Nenhum resultado para a pesquisa.";
                ModalPopupMsn.Show();
            }
            
        }

        protected void rtsDadoPaciente_TabClick(object sender, Telerik.Web.UI.RadTabStripEventArgs e)
        {
            switch (e.Tab.TabIndex)
            {
                case 0: Response.Redirect("/atendimento/Relatorio/RelDadosPaciente.aspx");
                    break;
                case 1: Response.Redirect("/atendimento/Relatorio/RelAnamnese.aspx");
                    break;
                case 2: Response.Redirect("/atendimento/Relatorio/RelAvd.aspx");
                    break;
                case 3: Response.Redirect("/atendimento/Relatorio/RelSocioEconomico.aspx");
                    break;
                case 4: Response.Redirect("/atendimento/Relatorio/RelClassificacaoFinal.aspx");
                    break;
                case 5: Response.Redirect("/atendimento/Relatorio/RelGestaoCuidados.aspx");
                    break;
                case 6: Response.Redirect("/atendimento/Relatorio/RelProntEnf.aspx?codPront=" + hdfCodProntuario.Value);
                    break;
            }
        }

        protected void lkbPrescInf_Click(object sender, EventArgs e)
        {
            Response.Redirect("/atendimento/Relatorio/RelProntEnf.aspx?codPront=" + hdfCodProntuario.Value);
        }

        protected void lkbPrescMed_Click(object sender, EventArgs e)
        {
            Response.Redirect("/atendimento/Relatorio/RelProntMedico.aspx?codPront=" + hdfCodProntuario.Value);
        }

        protected void CarregarVariaveis(int CodUser)
        {
            var objPront = metPront.SelecionarProntuario(CodUser);

            if (objPront != null)
            {
                //Anamnese e AVD

                switch (objPront.NO_DISPOSICAO)
                {
                    case "1":
                        lblDisposiLazer.Text = "Sempre";
                        break;
                    case "2":
                        lblDisposiLazer.Text = "Frequentemente";
                        break;
                    case "3":
                        lblDisposiLazer.Text = "Às vezes";
                        break;
                    case "4":
                        lblDisposiLazer.Text = "Raramente";
                        break;
                    case "5":
                        lblDisposiLazer.Text = "Nunca";
                        break;
                    case "6":
                        lblDisposiLazer.Text = "Não Avaliado";
                        break;
                }

                switch (objPront.NO_TABAGISTA)
                {
                    case "1":
                        lblTabagista.Text = "Não";
                        break;
                    case "2":
                        lblTabagista.Text = "Sim";
                        break;
                    case "3":
                        lblTabagista.Text = "Não Avaliado";
                        break;
                }

                switch (objPront.NO_PRESENCA)
                {
                    case "1":
                        lblRampas.Text = "Não";
                        break;
                    case "2":
                        lblRampas.Text = "Sim";
                        break;
                    case "3":
                        lblRampas.Text = "Não Avaliado";
                        break;
                }

                switch (objPront.NO_SENTIMENTO)
                {
                    case "1":
                        lblEstadoEmocional.Text = "Calmo";
                        break;
                    case "2":
                        lblEstadoEmocional.Text = "Agitado";
                        break;
                    case "3":
                        lblEstadoEmocional.Text = "Alegre";
                        break;
                    case "4":
                        lblEstadoEmocional.Text = "Triste";
                        break;
                    case "5":
                        lblEstadoEmocional.Text = "Não se aplica";
                        break;
                    case "6":
                        lblEstadoEmocional.Text = "Não Avaliado";
                        break;
                }

                lblIdade.Text = objPront.NO_IDADE;
                lblValorKats1.Text = objPront.NO_KATZ;


                lblBradem.Text = objPront.NO_BRADEM;


                switch (objPront.NO_CONDICAO)
                {
                    case "1":
                        lblCondUser.Text = "Usuário com problema de saúde crônico compensado";
                        break;
                    case "2":
                        lblCondUser.Text = "Usuário com maior grau de comprometimento clínico (agudo ou crônico descompensado)";
                        break;
                    case "3":
                        lblCondUser.Text = "Não Avaliado";
                        break;
                }


                //Ambiente e recursos materiais
                switch (objPront.NO_EQUIPAMENTO)
                {
                    case "1":
                        lblAusenciaEquip.Text = "Sim";
                        break;
                    case "2":
                        lblAusenciaEquip.Text = "Não";
                        break;
                    case "3":
                        lblAusenciaEquip.Text = "Não Avaliado";
                        break;
                }

                switch (objPront.NO_INADEQUADA)
                {
                    case "1":
                        lblCondInadeq.Text = "Sim";
                        break;
                    case "2":
                        lblCondInadeq.Text = "Não";
                        break;
                    case "3":
                        lblCondInadeq.Text = "Não Avaliado";
                        break;
                }



                //Cuidador
                switch (objPront.NO_SOBRECARREGADO)
                {
                    case "1":
                        lblSobrecarregado.Text = "Sim";
                        break;
                    case "2":
                        lblSobrecarregado.Text = "Não";
                        break;
                    case "3":
                        lblSobrecarregado.Text = "Não Avaliado";
                        break;
                }

                switch (objPront.NO_DOR)
                {
                    case "1":
                        lblDorCansaco.Text = "Sim";
                        break;
                    case "2":
                        lblDorCansaco.Text = "Não";
                        break;
                    case "3":
                        lblDorCansaco.Text = "Não Avaliado";
                        break;
                }

                switch (objPront.NO_DISP_CUIDADOR)
                {
                    case "1":
                        lblSemDispoLazer.Text = "Sim";
                        break;
                    case "2":
                        lblSemDispoLazer.Text = "Não";
                        break;
                    case "3":
                        lblSemDispoLazer.Text = "Não Avaliado";
                        break;
                }


                //Vulnerabilidade no contexto social e familiar
                switch (objPront.NO_AUSENCIA_CUIDADOR)
                {
                    case "1":
                        lblSemCuidador.Text = "Sim";
                        break;
                    case "2":
                        lblSemCuidador.Text = "Não";
                        break;
                    case "3":
                        lblSemCuidador.Text = "Não Avaliado";
                        break;
                }


                switch (objPront.NO_IDOSO)
                {
                    case "1":
                        lblIdosoCuidaIdoso.Text = "Sim";
                        break;
                    case "2":
                        lblIdosoCuidaIdoso.Text = "Não";
                        break;
                    case "3":
                        lblIdosoCuidaIdoso.Text = "Não Avaliado";
                        break;
                }

                switch (objPront.NO_SENTIMENTO_FAMILIAR)
                {
                    case "1":
                        lblTritezaCuid.Text = "Sim";
                        break;
                    case "2":
                        lblTritezaCuid.Text = "Não";
                        break;
                    case "3":
                        lblTritezaCuid.Text = "Não Avaliado";
                        break;
                }

                switch (objPront.NO_RITMO)
                {
                    case "1":
                        lblRitmoVida.Text = "Sim";
                        break;
                    case "2":
                        lblRitmoVida.Text = "Não";
                        break;
                    case "3":
                        lblRitmoVida.Text = "Não Avaliado";
                        break;
                }

                switch (objPront.NO_RELACIONAMENTO)
                {
                    case "1":
                        lblAlteraRelacio.Text = "Sim";
                        break;
                    case "2":
                        lblAlteraRelacio.Text = "Não";
                        break;
                    case "3":
                        lblAlteraRelacio.Text = "Não Avaliado";
                        break;
                }



                //AD

                if (objPront.NR_Q_AD1_1 == 1) lblAd1.Text = "Possuam problemas de saúde controlados/compensados e com dificuldade ou impossibilidade física de locomoção até uma unidade de saúde<br />";
                if (objPront.NR_Q_AD1_2 == 1) lblAd1.Text = "Necessitem de cuidados de menor complexidade, incluídos os de recuperação nutricional, de menor frequência, com menor necessidade de recursos de saúde e dentro da capacidade de atendimento das Unidades Básicas de Saúde (UBS); e<br />";
                if (objPront.NR_Q_AD1_3 == 1) lblAd1.Text = "Não se enquadrem nos critérios previstos para as modalidades AD2 e AD3 descritos nesta Portaria.<br />";


                if (objPront.NR_Q_AD2_1 == 1) lblAd2.Text = "Demanda por procedimentos de maior complexidade, que podem ser realizados no domicílio, tais como: curativos complexos e drenagem de abscesso, entre outros<br />";
                if (objPront.NR_Q_AD2_2 == 1) lblAd2.Text = "Dependência de monitoramento frequente de sinais vitais<br />";
                if (objPront.NR_Q_AD2_3 == 1) lblAd2.Text = "Necessidade frequente de exames de laboratório de menor complexidade<br />";
                if (objPront.NR_Q_AD2_4 == 1) lblAd2.Text = "Adaptação do usuário e/ou cuidador ao uso do dispositivo de traqueostomia<br />";
                if (objPront.NR_Q_AD2_5 == 1) lblAd2.Text = "Adaptação do usuário ao uso de órteses/próteses<br />";
                if (objPront.NR_Q_AD2_6 == 1) lblAd2.Text = "Adaptação de usuários ao uso de sondas e ostomias<br />";
                if (objPront.NR_Q_AD2_7 == 1) lblAd2.Text = "Acompanhamento domiciliar em pós-operatório;<br />";
                if (objPront.NR_Q_AD2_8 == 1) lblAd2.Text = "Reabilitação de pessoas com deficiência permanente ou transitória, que necessitem de atendimento contínuo, até apresentarem condições de frequentarem serviços de reabilitação<br />";
                if (objPront.NR_Q_AD2_9 == 1) lblAd2.Text = "Uso de aspirador de vias aéreas para higiene brônquica<br />";
                if (objPront.NR_Q_AD2_10 == 1) lblAd2.Text = "Acompanhamento de ganho ponderal de recém-nascidos de baixo peso<br />";
                if (objPront.NR_Q_AD2_11 == 1) lblAd2.Text = "Necessidade de atenção nutricional permanente ou transitória<br />";
                if (objPront.NR_Q_AD2_12 == 1) lblAd2.Text = "Necessidade de cuidados paliativos<br />";
                if (objPront.NR_Q_AD2_13 == 1) lblAd2.Text = "Necessidade de medicação endovenosa ou subcutânea<br />";
                if (objPront.NR_Q_AD2_14 == 1) lblAd2.Text = "Necessidade de fisioterapia semanal.<br />";


                if (objPront.NR_Q_AD3_1 == 1) lblAd3.Text = "Oxigenoterapia e Suporte Ventilatório não invasivo (Pressão Positiva Contínua nas Vias Aéreas (CPAP), Pressão Aérea Positiva por dois Níveis (BIPAP), Concentrador de O2 )<br />";
                if (objPront.NR_Q_AD3_2 == 1) lblAd3.Text = "Diálise piritoneal<br />";
                if (objPront.NR_Q_AD3_3 == 1) lblAd3.Text = "Paracentese<br />";


                lblAD.Text = metCalculo.CalcularAD(objPront.CO_USUARIO);

                hdfCodProntuario.Value = objPront.CO_PRONTUARIO.ToString();

              
                
            }
            

           

        }

        protected void btnConsulta_Click(object sender, EventArgs e)
        {
            var objPront = metPront.SelecionarProntuarioRelatorio(Convert.ToInt32(Session["CO_USUARIO"].ToString()), txtDtInicial.Text, txtDtFinal.Text);

           
                CarregarGrid(objPront);
            
        }

        protected void grdResult_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            metPaciente metPac = new metPaciente();
            metUsuario metUser = new metUsuario();

            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                var user = metPac.getUsuarioByCod(Convert.ToInt32(e.Row.Cells[0].Text));
                e.Row.Cells[0].Text = user.NO_NOME;

                var prof = metUser.Selecionar(Convert.ToInt32(e.Row.Cells[1].Text));
                e.Row.Cells[1].Text = prof.NO_PROFISSIONAL;


            }
        }

        protected void grdResult_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if(e.CommandName == "Visualizar")
            {
                var id = e.CommandArgument;

                pnlForm.Visible = true;
                pnlConsulta.Visible = false;

                CarregarVariaveis(Convert.ToInt32(id));

            }
        }

       
    }
}